Skip to content

docs: landing polish + Node section alignment#279

Merged
pratyush618 merged 6 commits into
masterfrom
feat/docs-landing-node-polish
Jun 21, 2026
Merged

docs: landing polish + Node section alignment#279
pratyush618 merged 6 commits into
masterfrom
feat/docs-landing-node-polish

Conversation

@pratyush618

@pratyush618 pratyush618 commented Jun 21, 2026

Copy link
Copy Markdown
Collaborator

Landing-page and Node-docs polish.

Landing page

  • Hero code-snippet tab relabeled TypeScript → Node.js, with a Beta badge; Go/Java roadmap tabs removed (dead SOON_PANES/SoonBox cleaned up).
  • Use-case cards now deep-link into the matching example/guide (they previously rendered a arrow but linked nowhere): ETL→data-pipeline, Email→notifications, ML batch→benchmark, Scheduled→core/scheduling (no cron example exists).
  • Homepage links are SDK-aware: use-case cards, footer Docs/More columns, and scenario-finder guide links flip between /python and /node via the active SDK. Two scenarios remap to Node's different slugs (advanced-execution/streamingcore/streaming, workflows/sagasworkflows/saga).
  • Recovery demo now auto-plays on open (saga/workflow already did; the other live demos are unaffected).

Node docs

  • 38 page titles aligned to the Python docs' naming (Title Case + verbose), plus the previously-empty node/more/meta.json. Kept Node-specific titles where content genuinely differs (migration = BullMQ, retries keeps DLQ separate).

Background docs prefetch

  • Selecting a language warms every doc chunk for that SDK in the background, so the first navigation into its docs is instant. Idle-scheduled (requestIdleCallback), concurrency-capped, idempotent per SDK, and backs off under Save-Data / 2G — the quicklink/Gatsby prefetch playbook.

Notes

  • Scenario-finder snippets stay Python code; only their guide links are SDK-aware (rewriting snippets to TS is a separate pass).

Verification

pnpm --dir docs typecheck, lint, and build (full static prerender of all node + python pages) all pass.

Summary by CodeRabbit

  • New Features
    • Added automatic background prefetching of SDK documentation to speed up navigation across SDKs.
  • Improvements
    • Updated landing navigation to be SDK-aware across the hero, footer, use-case cards, and “Read the guide” links (including Node/Python routing adjustments).
    • Recovery demo now begins playback immediately on open.
  • Documentation
    • Refreshed multiple doc page headings/titles for consistency (e.g., capitalization and wording).
  • Style
    • Adjusted landing card link styling to inherit text color and remove default underlines.

@github-actions github-actions Bot added the docs label Jun 21, 2026
@coderabbitai

coderabbitai Bot commented Jun 21, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d11ee243-4a4b-47ce-aeef-bdcc8b3a1522

📥 Commits

Reviewing files that changed from the base of the PR and between 4734727 and d3575c0.

📒 Files selected for processing (1)
  • docs/app/components/landing/sections.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/app/components/landing/sections.tsx

📝 Walkthrough

Walkthrough

The PR adds background SDK doc prefetching via a new prefetchSdkDocs utility and usePrefetchDocs hook wired into root.tsx. It simplifies the landing Hero by removing "soon" panes, makes footer/sections/scenario-finder links SDK-aware, auto-starts the RecoveryDemo animation on mount, and renames 40 Node.js MDX page titles for consistency.

Changes

Landing Page SDK-Awareness and Prefetch Infrastructure

Layer / File(s) Summary
Background doc prefetch infrastructure and wiring
docs/app/lib/prefetch.ts, docs/app/hooks/use-prefetch-docs.ts, docs/app/hooks/index.ts, docs/app/root.tsx
prefetchSdkDocs schedules SDK doc loader execution across browser idle periods with session-idempotency, network awareness, and a concurrency cap. usePrefetchDocs calls it on SDK change and is invoked at the top of the root App component.
Landing content data model updates
docs/app/lib/landing-content.ts
Renames the second hero pane label/docLabel from "TypeScript" to "Node.js", adds optional href?: string to IconCard, and populates href on four USE_CASES entries.
Hero simplification — remove "soon" panes, always active
docs/app/components/landing/hero.tsx
Removes SOON_PANES/SoonLang imports and narrows Lang to py|ts; derives lang from useSdk(), makes active pane selection and output rendering unconditional, replaces the tab area with a HERO_PANES-only list, and updates the Node.js quickstart link text.
SDK-aware footer, use-cases, scenario-finder links, and CSS
docs/app/components/landing/footer.tsx, docs/app/components/landing/sections.tsx, docs/app/components/landing/scenario-finder.tsx, docs/app/styles/landing.css
Introduces typed FootLink with external/sdk flags and useActiveSdk() in Footer to build /${sdk}/${l.href} paths. Wraps each UseCases card in a Link navigating to the SDK-prefixed path. Adds NODE_GUIDE_OVERRIDES and guideHref() in ScenarioFinder to remap Python guide CTAs to Node paths. .uc CSS inherits color and removes text-decoration.
Recovery demo auto-start on mount
docs/app/components/demos/recovery-demo.tsx
Adds a mount-only useEffect that calls startPlay() so the demo animation begins immediately when the component opens.

Node.js Documentation Title Updates

Layer / File(s) Summary
Node.js MDX page title renames and examples meta.json
docs/content/docs/node/getting-started/capabilities.mdx, docs/content/docs/node/guides/core/*.mdx, docs/content/docs/node/guides/extensibility/*.mdx, docs/content/docs/node/guides/integrations/*.mdx, docs/content/docs/node/guides/observability/*.mdx, docs/content/docs/node/guides/operations/*.mdx, docs/content/docs/node/guides/reliability/*.mdx, docs/content/docs/node/guides/resources/*.mdx, docs/content/docs/node/guides/workflows/*.mdx, docs/content/docs/node/more/examples/*.mdx, docs/content/docs/node/more/meta.json
Updates title frontmatter across 39 Node.js documentation pages for title-casing and descriptiveness, and adds meta.json defining the "Examples" root section.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • ByteVeda/taskito#273: Established the React Router v7 polyglot SDK docs shell with useActiveSdk/SDK-scoped routing patterns that this PR extends in root.tsx and landing components.
  • ByteVeda/taskito#276: Introduced the ScenarioFinder/DemoModal UI in the same scenario-finder.tsx file that this PR modifies to add SDK-aware guide link rewriting.
  • ByteVeda/taskito#277: Ported RecoveryDemo to React in the same file where this PR adds the auto-start useEffect.

Poem

🐰 Hoppity hop, the pages now gleam,
Titles in title-case, tidy and clean!
The hero sheds "soon" like a coat in the spring,
And prefetch warms docs before anything.
SDK links zip to the right path with flair —
A rabbit-built landing beyond compare! 🌟

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 42.86% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'docs: landing polish + Node section alignment' accurately summarizes the main changes: landing page component updates and Node documentation section alignment with Python naming conventions.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/docs-landing-node-polish

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/app/components/landing/sections.tsx (1)

254-268: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Avoid dead-link fallback for cards without destinations.

Line 256 routes missing c.href to "#", which creates a fake navigation target. Render a non-link container when no href is present (or supply real hrefs for all cards) to avoid hash-jump behavior.

Proposed fix
-          {USE_CASES.map((c) => (
-            <Link
-              key={c.title}
-              to={c.href ? `/${sdk}/${c.href}` : "#"}
-              className="uc reveal"
-            >
+          {USE_CASES.map((c) =>
+            c.href ? (
+              <Link
+                key={c.title}
+                to={`/${sdk}/${c.href}`}
+                className="uc reveal"
+              >
+                <div className="ic">
+                  <Icon d={c.icon} rect={c.rect} />
+                </div>
+                <div>
+                  <h3>
+                    {c.title} <span className="arr">→</span>
+                  </h3>
+                  <RawHtml as="p" html={c.body} />
+                </div>
+              </Link>
+            ) : (
+              <div key={c.title} className="uc reveal">
+                <div className="ic">
+                  <Icon d={c.icon} rect={c.rect} />
+                </div>
+                <div>
+                  <h3>
+                    {c.title}
+                  </h3>
+                  <RawHtml as="p" html={c.body} />
+                </div>
+              </div>
+            ),
-              <div className="ic">
-                <Icon d={c.icon} rect={c.rect} />
-              </div>
-              <div>
-                <h3>
-                  {c.title} <span className="arr">→</span>
-                </h3>
-                <RawHtml as="p" html={c.body} />
-              </div>
-            </Link>
-          ))}
+          )}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/app/components/landing/sections.tsx` around lines 254 - 268, The Link
component in this card rendering section uses a hash fallback ("#") when c.href
is missing, which causes unwanted hash-jump behavior. Instead of using the
ternary condition that falls back to "#", conditionally render either a Link
component (when c.href exists with the proper href path) or a non-link container
element like a div (when c.href is missing). This way, cards without
destinations won't have any navigation target or dead-link behavior, while cards
with hrefs will still function as links.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@docs/app/components/landing/sections.tsx`:
- Around line 254-268: The Link component in this card rendering section uses a
hash fallback ("#") when c.href is missing, which causes unwanted hash-jump
behavior. Instead of using the ternary condition that falls back to "#",
conditionally render either a Link component (when c.href exists with the proper
href path) or a non-link container element like a div (when c.href is missing).
This way, cards without destinations won't have any navigation target or
dead-link behavior, while cards with hrefs will still function as links.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d60eb9fa-a8cb-4d4f-90f5-47cff117f235

📥 Commits

Reviewing files that changed from the base of the PR and between 09fbe05 and 4734727.

📒 Files selected for processing (51)
  • docs/app/components/demos/recovery-demo.tsx
  • docs/app/components/landing/footer.tsx
  • docs/app/components/landing/hero.tsx
  • docs/app/components/landing/scenario-finder.tsx
  • docs/app/components/landing/sections.tsx
  • docs/app/hooks/index.ts
  • docs/app/hooks/use-prefetch-docs.ts
  • docs/app/lib/landing-content.ts
  • docs/app/lib/prefetch.ts
  • docs/app/root.tsx
  • docs/app/styles/landing.css
  • docs/content/docs/node/getting-started/capabilities.mdx
  • docs/content/docs/node/guides/core/execution-model.mdx
  • docs/content/docs/node/guides/core/predicates.mdx
  • docs/content/docs/node/guides/core/queues.mdx
  • docs/content/docs/node/guides/core/scheduling.mdx
  • docs/content/docs/node/guides/extensibility/middleware.mdx
  • docs/content/docs/node/guides/extensibility/serializers.mdx
  • docs/content/docs/node/guides/integrations/express.mdx
  • docs/content/docs/node/guides/integrations/fastify.mdx
  • docs/content/docs/node/guides/integrations/nest.mdx
  • docs/content/docs/node/guides/integrations/otel.mdx
  • docs/content/docs/node/guides/integrations/prometheus.mdx
  • docs/content/docs/node/guides/integrations/sentry.mdx
  • docs/content/docs/node/guides/observability/logging.mdx
  • docs/content/docs/node/guides/observability/monitoring.mdx
  • docs/content/docs/node/guides/operations/inspection.mdx
  • docs/content/docs/node/guides/operations/keda.mdx
  • docs/content/docs/node/guides/operations/mesh.mdx
  • docs/content/docs/node/guides/reliability/circuit-breakers.mdx
  • docs/content/docs/node/guides/reliability/error-handling.mdx
  • docs/content/docs/node/guides/reliability/guarantees.mdx
  • docs/content/docs/node/guides/reliability/locks.mdx
  • docs/content/docs/node/guides/reliability/rate-limiting.mdx
  • docs/content/docs/node/guides/resources/dependency-injection.mdx
  • docs/content/docs/node/guides/resources/index.mdx
  • docs/content/docs/node/guides/resources/interception.mdx
  • docs/content/docs/node/guides/workflows/analysis.mdx
  • docs/content/docs/node/guides/workflows/caching.mdx
  • docs/content/docs/node/guides/workflows/canvas.mdx
  • docs/content/docs/node/guides/workflows/conditions.mdx
  • docs/content/docs/node/guides/workflows/saga.mdx
  • docs/content/docs/node/guides/workflows/sub-workflows.mdx
  • docs/content/docs/node/more/examples/bulk-emails.mdx
  • docs/content/docs/node/more/examples/data-pipeline.mdx
  • docs/content/docs/node/more/examples/express-service.mdx
  • docs/content/docs/node/more/examples/notifications.mdx
  • docs/content/docs/node/more/examples/predicate-gated-jobs.mdx
  • docs/content/docs/node/more/examples/web-scraper.mdx
  • docs/content/docs/node/more/examples/workflows.mdx
  • docs/content/docs/node/more/meta.json

@pratyush618 pratyush618 changed the title Docs landing polish + Node section alignment docs: landing polish + Node section alignment Jun 21, 2026
@pratyush618
pratyush618 merged commit 8d2139f into master Jun 21, 2026
18 of 19 checks passed
@pratyush618
pratyush618 deleted the feat/docs-landing-node-polish branch June 21, 2026 11:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant